import {ElMessage, ElMessageBox} from "element-plus";

/**
 * 消息提示
 * @param msg
 * @param type
 */
export function messageTip(msg, type) {
    ElMessage({
        showClose: true, //是否显示关闭按钮
        center: true, //文字是否居中
        duration: 3000, //显示时间，单位为毫秒
        message: msg, //提示的消息内容
        type: type, //消息类型：'success' | 'warning' | 'info' | 'error'
    })
}

/**
 * 获取token
 * @returns {string}
 */
export function getTokenName() {
    return 'dlyk_token'
}

/**
 * 删除token
 * @returns {string}
 */
export function removeToken() {
    window.sessionStorage.removeItem(getTokenName())
    window.localStorage.removeItem(getTokenName());
}

/**
 * 消息确认
 * @param msg
 * @returns {Promise<MessageBoxData>}
 */
export function messageConfirm(msg) {
    return ElMessageBox.confirm(
        msg,    //提示语
        '提醒',  //提示的标题
        {
            confirmButtonText: '确认',
            cancelButtonText: '取消',
            type: 'warning',
            center: true,
        }
    )
}

/**
 * 返回函数
 */
export function goBack() {
    this.$router.go(-1);
}

/**
 * 获取token
 * @returns {string}
 */
export function getToken() {
    let token = window.sessionStorage.getItem(getTokenName());
    //如果token没有值
    if (!token) {
        token = window.localStorage.getItem(getTokenName());
    }
    //如果token有值
    if (token) {
        return token;
    } else {
        messageConfirm("请求token为空，是否重新去登录?")
            .then(() => {   //用户点确定所执行的函数
                //既然后端验证失败，则直接删掉token
                removeToken();
                //跳转页面
                window.location.href = "/"
            })
            .catch(() => {  //用户点击取消的执行函数
                messageTip("取消去登录", "warning")
            })
    }
}